1. Field of the Invention
The present invention relates to the field of controlling data transfer between a data source and peripheral devices. More specifically, the present invention relates to a technique of protecting certain accesses to an input/output device of a computer.
2. Prior Art
In a typical multiple-user computer system, a number of users or a single user executing several tasks in parallel communicate with the computer's central processing unit (CPU). This CPU, in performing certain instruction steps, will communicate with input/output (I/O) devices, such as printers, disks and other peripherals. In order to allow the transfer of data to and from these various units, the CPU must promulgate instructions which control the accessing of these various units.
It is well-known in the computer industry that many schemes exist to control the accessing of an I/O device. One such I/O controlling device is a data synchronizer described in U.S. Pat. No. 3,812,475, wherein data channels direct the flow of information between I/O devices and main storage so that the CPU is relieved of communicating directly with the devices and permit data processing to proceed concurrently with I/O operations. Further, in a multiple user environment, user security systems have been implemented to prevent one user from interfering or disrupting other users. For example, a memory device such as a disk, is separated into a number of work areas and a particular user is allowed to access that user's work area only and alternatively is also protected from entry by other users. However, such I/O controlling and multiple user-protection systems have been developed primarily with the large mainframe computers of the past, and are not readily applicable to the microprocessor based so-called "personal computers" (PCs) of today, wherein the limited size of the PCs require the CPU to direct all controlling functions.
The first generation PCs originated as a single-user computer system, wherein a single user had full operational control of the complete system, including all I/Os connected to the PC. Many programs, both operating systems and applications software, have been written for the PC, allowing full control and access by the single user. However, as PCs became more prevalent, its use has recently been expanded into commercial domains beyond the single-user environment. Although multiple-user PCs exist today, none provide the extensive user protection devices available to the larger mainframes. The few PCs with multiple-user capability operate as a time-sharing machine having one full user and many limited users. The prior art multiple-user PCs cannot operate with every user utilizing the single-user software routines unless some means is used to control the full system accessing capabilities of these popular software routines.
It is appreciated that what is needed then is a multiple-user microprocessor based computer, compatible to operate many of the existing popular PC software routines. Such a computer should be patterned to fit into the existing PC environment. Ideally, what is needed is a multiple-user PC which provides a perspective to every user that the PC is a single-user machine capable of running most single-user software routines. The multiple-user PC, having a microprocessor as a CPU, must be capable of controlling the rerouting of certain user routines so that one user will not interfere with routines of other users. Where a plurality of single-user routines are running simultaneously, some means must be used to control the I/O accessing of these routines. Because of the limited scope of the CPU, the controlling and protection scheme of the mainframes cannot be readily adapted to the PC environment. A more primitive but effective means for I/O accessing is then needed. The present invention provides such I/O protection.